﻿using System;

namespace IntoTheVoid.State
{
    public class StateContext
    {
        private State curState;
        public State CurState
        {
            get { return curState; }
            set
            {
                curState = value;
            }
        }
        private StateType stateType = StateType.Other;
        public StateType StateType
        {
            get { return stateType; }
            set
            {
                stateType = value;
            }
        }

		public event EventHandler<EventArgs> ShowInstallPathChangeView;
		public virtual void OnShowInstallPathChangeView(EventArgs a)
		{
			ShowInstallPathChangeView?.Invoke(this, null);
		}
		public event EventHandler<TipsEventArgs> TipsArgs;
        public virtual void OnTipsStateArgs(TipsEventArgs args)
        {
            TipsArgs?.Invoke(this, args);
        }

        public event EventHandler<ButtonStateChangeEventArgs> ButtonStateArgs;
        public virtual void OnButtonStateArgs(ButtonStateChangeEventArgs args)
        {
            ButtonStateArgs?.Invoke(this, args);
        }
        public event EventHandler<ProcessStateChangeEventArgs> ProcessStateArgs;
        public virtual void OnProcessStateArgs(ProcessStateChangeEventArgs args)
        {
            ProcessStateArgs?.Invoke(this, args);
        }
		public event EventHandler<MainWindowVisableArgs> WindowStateArgs;
		public virtual void OnWindowStateeArgs(MainWindowVisableArgs args)
		{
			WindowStateArgs?.Invoke(this, args);
		}
	}
}

